package com.zhiguang.cms.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.zhiguang.cms.entity.Article;
import com.zhiguang.cms.entity.Category;
import com.zhiguang.cms.entity.Channel;
import com.zhiguang.cms.entity.Comment;

public interface ArticleService {

	//获取文章的列表
	PageInfo list(int page);

	/**
	 * 获取一篇文章
	 * @param id
	 * @return
	 */
	Article getById(int id);

	/**
	 * 审核文章
	 * @param id 文章id
	 * @param status 要改变的状态
	 * @return
	 */
	int check(int id, int status);

	/**
	 * 设置文章热门
	 * @param id 文章id
	 * @param status 要改变的状态
	 * @return
	 */
	int hot(int id, int status);

	/**
	 * 获取所有的栏目
	 * @return
	 */
	List<Channel> listChannels();

	List<Category> listCat(int channelId);

	/**
	 * 添加文章
	 * @param article
	 * @return
	 */
	int add(Article article);

	/**
	 * 根据用户获取文章
	 * @param id
	 * @param page
	 * @return
	 */
	PageInfo<Article> listByUser(Integer id, int page);

	void detete(int id);

	/**
	 * 最新文章
	 * @param n
	 * @return
	 */
	List<Article> lastarticles(int n);
	
	/**
	 * 获取热门文章
	 * @param page
	 * @return
	 */
	PageInfo<Article> hotList(int page);

	/**
	 * 获取栏目下  或分类下的文章
	 * @param channelId 栏目id
	 * @param categoryId 分类id
	 * @param page  页码
	 * @return
	 */
	PageInfo<Article> listBy2C(int channelId, int categoryId, int page);

	/**
	 * 
	 * @param articleId
	 * @param content  评论的内容
	 * @param userId
	 */
	int addComment(int articleId, String content, Integer userId);

	/**
	 * 
	 * @param articleId 
	 * @param page
	 * @return
	 */
	PageInfo<Comment> listComment(int articleId, int page);

}
